#include <QApplication>

#include "jcrspider.h"
#include "gui/workbench.h"
#include "haha/hahawindow.h"
#include "haha/displayitem.h"
#include "pagedler/pagedler.h"
#include "webinspector/downloadcenter.h"
#include "webinspector/webinspector.h"
#include "../filemanager/filemanager.h"
#include "workbench.h"
#include "videolinkconverter.h"

#define RUN_TEST
#ifdef RUN_TEST
#include "testutils.h"
#include "testimagedownloader.h"
#include "testbrandpageparser.h"
#include "testdatabasemanager.h"
#include "testmodelpageparser.h"
#include "testimagepageparser.h"
#include "testparameterspageparser.h"
#include "testvideopageparser.h"
#include "testhahapageparser.h"
#include "testtukupageparser.h"
#include "testfiledownloader.h"
#include "testdownloaditem.h"
#include "testpageimagesparser.h"
#include "testyoukupageparser.h"

#define RUN_TEST_CASE(CASE) { CASE* c = new CASE(); }

#endif

int main(int argc, char** argv)
{
#ifdef RUN_TEST
    QApplication app(argc, argv);
//    testUtils();
//    RUN_TEST_CASE(testDownloadItem);
//    RUN_TEST_CASE(testImageDownloader);
//    RUN_TEST_CASE(testPageImagesParser);
//    RUN_TEST_CASE(testFileDownloader);
//    RUN_TEST_CASE(testYoukuPageParser);
//    testBrandPageParser hpp;
//    Jcr::PageDler win;
//    win.show();
//    testModelPageParser mpp;
//    testHahaPageParser hpp;
//    testVideoPageParser vpp;
//    testParametersPageParser ppp;
//    testImagePageParser ipp;
//    testTukuPageParser tpp;
//    testDatabaseManager testDbMgr;
//    Jcr::Workbench win;
//    win.show();
//    Haha::HaHaWindow win;
//    win.show();
//    testFileDownloader tfd;

//    Jcr::WebInspector win;
//    win.show();
//    Jcr::FileManager win;
//    win.show();
    Jcr::Workbench win;
    win.show();

//    Jcr::VideoLinkConverter win;
//    win.show();
    return app.exec();
#else
    QCoreApplication app(argc, argv);
    JcrSpider spider;
    spider.go();
    return app.exec();
#endif
}
